/******************************************************************************
 cnome: A C++ source "genes" discover. :-)

 See more details at:

   http://www.codeplex.com/cnome

 The original author site is at: http://www.alexandre-barbosa.com/

 Copyright (c) 2008 Alexandre Barbosa.
 Distributed under the MIT License. (See accompanying file LICENSE-MIT.txt 
 or at http://www.codeplex.com/cnome/license)
 ******************************************************************************/

#ifndef TOKENS_H
#define TOKENS_H

#include "cnome_typedefs.h"
#include "cnome_iterator.h"

namespace cnome {
extern rule_t const  	_THIS;  // THIS and THIS_ is already used in ObjBase.h file of Microsoft SDK

extern rule_t const  	RIGHTPAREN;

extern rule_t const  	LEFTPAREN;

extern rule_t const  	RIGHTBRACKET;

extern rule_t const  	LEFTBRACKET;

extern rule_t const  	RIGHTBRACE;

extern rule_t const  	LEFTBRACE;

extern rule_t const  	COMPL;

extern rule_t const  	TEMPLATE;

extern rule_t const  	INT_;

extern rule_t const  	COLON_COLON;

extern rule_t const  	SEMICOLON;

extern rule_t const  	FRIEND;

extern rule_t const  	TYPEDEF;

extern rule_t const  	AUTO;

extern rule_t const  	REGISTER;

extern rule_t const  	STATIC;

extern rule_t const  	EXTERN;

extern rule_t const  	MUTABLE;

extern rule_t const  	INLINE;

extern rule_t const  	VIRTUAL;

extern rule_t const  	EXPLICIT;

extern rule_t const  	CHAR_;

extern rule_t const  	WCHART;

extern rule_t const  	BOOL_;

extern rule_t const  	SHORT_;

extern rule_t const  	LONG_;

extern rule_t const  	SIGNED;

extern rule_t const  	UNSIGNED;

extern rule_t const  	FLOAT_;

extern rule_t const  	DOUBLE_;

extern rule_t const  	VOID_;

extern rule_t const  	COMMA;

extern rule_t const  	ENUM;

extern rule_t const  	TYPENAME;

extern rule_t const  	NAMESPACE;

extern rule_t const  	USING;

extern rule_t const  	ASM;

extern rule_t const  	ASSIGN;

extern rule_t const		STAR;

extern rule_t const		AND;

extern rule_t const		CONST_;

extern rule_t const		VOLATILE;

extern rule_t const		ELLIPSIS;

extern rule_t const		TRY;

extern rule_t const		CATCH;

extern rule_t const		THROW;

extern rule_t const		CLASS;

extern rule_t const		STRUCT ;

extern rule_t const		UNION;

extern rule_t const		COLON;

extern rule_t const		INTLIT;

extern rule_t const		CHARLIT;

extern rule_t const		FLOATLIT;

extern rule_t const		STRINGLIT;

extern rule_t const		FALSE_;

extern rule_t const		TRUE_;

extern rule_t const		BOOLLIT;

extern rule_t const		PRIVATE;
			
extern rule_t const		PROTECTED;
			
extern rule_t const		PUBLIC;

extern rule_t const		IF;

extern rule_t const		ELSE;

extern rule_t const		SWITCH;

extern rule_t const		WHILE;

extern rule_t const		DO;
			
extern rule_t const		FOR;

extern rule_t const		BREAK;

extern rule_t const		CONTINUE;

extern rule_t const		RETURN;

extern rule_t const		CASE;

extern rule_t const		DEFAULT;

extern rule_t const		GOTO;

extern rule_t const		DYNAMIC_CAST;

extern rule_t const		LESS;

extern rule_t const		GREATER;

extern rule_t const		STATIC_CAST;

extern rule_t const		REINTERPRET_CAST;

extern rule_t const		CONST_CAST;

extern rule_t const		TYPEID;

extern rule_t const		DOT;

extern rule_t const		ARROW;

extern rule_t const		PLUSPLUS;

extern rule_t const		MINUSMINUS;

extern rule_t const		SIZEOF;

extern rule_t const		PLUS;

extern rule_t const		MINUS;

extern rule_t const		NEW;

extern rule_t const		DELETE_;

extern rule_t const		OROR;

extern rule_t const		QUESTION_MARK;

extern rule_t const		STARASSIGN;

extern rule_t const		DIVIDEASSIGN;

extern rule_t const		PERCENTASSIGN;

extern rule_t const		PLUSASSIGN;

extern rule_t const		MINUSASSIGN;

extern rule_t const		SHIFTRIGHT;

extern rule_t const		SHIFTLEFT;

extern rule_t const		SHIFTRIGHTASSIGN;

extern rule_t const		SHIFTLEFTASSIGN;

extern rule_t const		ANDASSIGN;

extern rule_t const		XORASSIGN;

extern rule_t const		ORASSIGN;

extern rule_t const		ANDAND;

extern rule_t const		OR;

extern rule_t const		XOR;

extern rule_t const		EQUAL;

extern rule_t const		NOTEQUAL;

extern rule_t const		LESSEQUAL;

extern rule_t const		GREATEREQUAL;

extern rule_t const		DIVIDE;

extern rule_t const		PERCENT;

extern rule_t const		DOTSTAR;

extern rule_t const		ARROWSTAR;

extern rule_t const		OPERATOR;

extern rule_t const		NEW_S;

extern rule_t const		DELETE_S;

extern rule_t const		BRACKETS;

extern rule_t const		PARENS;

extern rule_t const		NOT;

extern rule_t const		EXPORT;

extern rule_t const		IDENTIFIER_HELPER;

extern rule_t const		IDENTIFIER;

extern rule_t const		CLASS_NAME;

extern rule_t const		ENUM_NAME;

extern rule_t const		TYPEDEF_NAME;

extern rule_t const		NAMESPACE_ALIAS;

extern rule_t const		ORIGINAL_NAMESPACE_NAME;

extern rule_t const		TEMPLATE_NAME;

extern rule_t const		EPSILON;

extern rule_t const		NOTHING;
} // namespace cnome 

#endif // TOKENS_H
